\section{Lessons Learned}

Were any changes to the VCS-to-Autosar transformation itself that needed to be
made?  In \cite{salay14} we were saying "take an arbitrary transformation and lift it".
Is that really true? If it is, that is a very interesting lesson learned because
it confirmed our hypothesis, because the previous transformation was not built
for lifting, it was liftable as is.

However (another lesson learned) a tool that does transformation needs to do its
things in a particular way to allow it to be liftable: we had to make changes to
DSLTrans, not to the transformation. In our original thesis we were saying that
we were re-interpreting semantics, but here we had to make changes to DSLTrans
in order to allow this re-interpretation of semantics.


In \cite{salay14} we implemented lifting {\em using} Henshin as an API, but in this
case, we {\em adapted} DSLTrans 
Also, we didn't just lift DSLTrans, we had to redo an aspect of the language
(existential matching) in
order for it to be liftable.
Lesson learned: When is a transformation tool
liftable?  Why did lifting work for DSLTrans? And what would it mean if we were
to do it to other tools?  At least some sufficient/necessary condition for
liftability. E.g. for a rule-based tool, how should rules be done, how
should matching be done in the transformation tool before it can be lifted.  the
main reason DSLTrans is liftable is because the productions/individual
applications are an atomic thing that we can go and just lift that and then the
rest of the language can be adapted around that.

Another Lesson learned: In \cite{salay14} there was a particular
shape in which the product line was kept.  This is not entirely  true about
GM's product lines so something may need to be done (and that's a big deal).
Maybe we will need to transform GM's product line to an annotative product line.
Maybe the variability language used in GM is stronger than what we assume. We
will have to describe (at least at a high level of abstraction) what it takes.

Lessons learned about the lifting process:
\begin{enumerate}
\item What does it take to lift a transformation tool?
\item Confirmed or refuted  some of our scalability postulates (\cite{salay14})
and applicability
\item Confirmed or denied that the actual transformation stays exactly the same
\item When is a transformation tool liftable?			
\item Why did it work? And what would it mean if we were to do it to other
tools?
\end{enumerate}
		
Lessons learned about the lifting outcome (the act of transforming GM's
product line):
\begin{enumerate}
\item Effectiveness, applicability, scalability and the need to rewrite
transformations that were done before (i.e., confirmation that you don't need to
rewrite) 
\item Confirmed or re-established the ideas that were done for much smaller
models on sizes etc
\end{enumerate}




		  	




